﻿using System.Collections.Generic;
using System.Globalization;
using System.Threading;

namespace Cnm.Core.Domain.Localization
{
    //public static class WorkingLocalizedManager
    //{
    //    const string VietnamCultureName = "vi";
    //    const string EnglishCultureName = "en";

    //    public static CultureInfo DefaultCulture
    //    {
    //        get
    //        {
    //            return SupportedCultures[VietnamCultureName];
    //        }
    //    }

    //    static Dictionary<string, CultureInfo> SupportedCultures { get; set; }


    //    static void AddSupportedCulture(string name)
    //    {
    //        SupportedCultures.Add(name, CultureInfo.CreateSpecificCulture(name));
    //    }

    //    static void InitializeSupportedCultures()
    //    {
    //        SupportedCultures = new Dictionary<string, CultureInfo>();
    //        AddSupportedCulture(VietnamCultureName);
    //        AddSupportedCulture(EnglishCultureName);
    //    }

    //    static string ConvertToShortForm(string code)
    //    {
    //        return code.Substring(0, 2);
    //    }

    //    static bool CultureIsSupported(string code)
    //    {
    //        if (string.IsNullOrWhiteSpace(code))
    //            return false;
    //        code = code.ToLowerInvariant();
    //        if (code.Length == 2)
    //            return SupportedCultures.ContainsKey(code);
    //        return CultureFormatChecker.FormattedAsCulture(code) && SupportedCultures.ContainsKey(ConvertToShortForm(code));
    //    }

    //    static CultureInfo GetCulture(string code)
    //    {
    //        if (!CultureIsSupported(code))
    //            return DefaultCulture;
    //        string shortForm = ConvertToShortForm(code).ToLowerInvariant();
    //        return SupportedCultures[shortForm];
    //    }

    //    public static void SetCulture(string code)
    //    {
    //        CultureInfo cultureInfo = GetCulture(code);
    //        Thread.CurrentThread.CurrentUICulture = cultureInfo;
    //        Thread.CurrentThread.CurrentCulture = cultureInfo;
    //    }

    //    static WorkingLocalizedManager()
    //    {
    //        InitializeSupportedCultures();
    //    }

    //    public static LanguageType CurrentLang
    //    {
    //        get
    //        {
    //            return Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName == VietnamCultureName
    //                ? LanguageType.Vietnamese
    //                : LanguageType.English;
    //        }
    //    }
    //    public static LanguageType DefaultLang
    //    {
    //        get { return LanguageType.Vietnamese; }
    //    }
    //    public static string CurrentLangIsoTowLetter
    //    {
    //        get { return Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName; }
    //    }

    //    public static List<LanguageType> SupportLanguages
    //    {
    //        get
    //        {
    //            return new List<LanguageType>
    //            {
    //                LanguageType.Vietnamese,
    //                LanguageType.English
    //            };    
    //        }
            
    //    }
    //}
}
